草庐IT

mySQL UPDATE value based on SELECT value of value +1 递增列值

全部标签

mysql - MySQL 中用于多主复制的自动递增主键的替代方法

我指定的Web应用程序需要水平扩展,并且从一开始就需要一对MySQL服务器(可能在启动后很快增加到多个)。由于自动增量主键不合适,我想知道人们使用什么替代方案。带有日期的东西最有意义,但如果你深入到毫秒级别并假设一个三位数的服务器ID,那将是一个非常大的数字:sssyymmddhhmmssmicros或001110510143622123456现在-另外,您也许可以在开头使用另一个数字来简化前导零(也许是数据中心ID)。纪元时间缩短了它,但只是一点点。还有什么? 最佳答案 我认为您正在寻找的是UUID(通用唯一标识符)。在MySQL

mysql - 如何更新表以添加主键并使用递增的 ID 更新所有现有行?

我有一个表,其中包含我导入的20,000行数据,但我忘记在上面放置一个主键,以便每一行都有一个唯一的键。我希望第一行从ID1开始,一直递增到最后一行并在ID20000结束。如何使用单个查询更新所有行?我正在使用MySQL。已尝试使用PhpMyAdmin,但它不会这样做。 最佳答案 添加新的ID列后(暂时不要设置为主键,也不要开启自增)运行:SET@index=1;UPDATEtablenameSETID=(@index:=@index+1);这会在每个现有行上设置一个从1开始递增的ID值,从而解决在输入数据后尝试插入新的主键列时将面

MySQL 为什么在插入时我的自动递增不是从 1 开始?

为什么当我使用jdbc向我的数据库中插入时,我的表auto_increments被顶起。填充完全空表的示例:狗表DogIdDogName3Woofer4Kujo5Spike所有者表OwnerIdDogIDOwnerName63George74John85Sam期望的结果狗表DogIdDogName1Woofer2Kujo3Spike所有者表OwnerIdDogIDOwnerName11George22John33Sam实际代码:publicvoidinsertStuff(Somethingd){Connectioncon=null;try{Class.forName("com.mysq

java - Hibernate 实体跨表而不是每个表自动递增 id

目前我有三个表:Company、Group、Person。这三个表通过Company与Group一对多以及Group与Person一对多连接。在所有三个类(Company.java、Group.java、Person.java)中,我用这种方式编写了自动递增唯一标识:@Id@Column(name="id")@GeneratedValueprivateintid;然后我按以下顺序实例化了所有三个类:Company、Group、Person。将这些对象保存到我的数据库后,我注意到表中的ID有问题。显然,不是按1、2、3、4等顺序增加公司的ID;它在1,4,7,10...中增加。按照同样的

基于列值的 MySQL Inner Join 表

假设我有一个具有以下结构的表“stats”:表名|编号|页面浏览量tableName列对应于数据库中的单独表。当针对“stats”运行查询时,针对tableName列结果进行内部联接以获取每个表的数据的最佳方式是什么?我正在考虑在foreach中运行动态选择,然后合并结果。例如:foreach($tableNamesas$tableName){$sql="SELECT*FROMstatssINNERJOIN$tableNametblONs.id=tbl.idWHEREtableName='$tableName'";} 最佳答案 要获

php - 使用 PDO 准备语句并增加列值

我读过这个帖子:IssuesincrementingafieldinMySQL/PHPwithpreparedstatements但没有看到我的问题的答案。PDOStatementObject([queryString]=>UPDATEuser_alertsSETnotif=?+2WHERE(user_id=?))$stmt->execute(array('notif','1'));据我所知,这一切都是正确的。当上面的代码执行时,无论notif列的值是多少,它都会将notif列设置为2。就好像SQL读起来像SETnotif=2而不是SETnotif=notif+2我还没弄明白,非常感谢

c# - 使用 LINQ 仅更新一列值

假设我有表中一列的ID,并且我想将其中一个列的值递增1。我应该如何处理这个问题。这是我已经拥有的。表格有3个属性,(id,category,value)varcol1=db.columns.Where(w=>w.category.Equals("Cars"));我想将类别为“汽车”的表中的值增加1。这个的LINQ查询是什么。以前可能有人问过类似的问题,但我看到的答案似乎都不够令人满意。 最佳答案 varcol1=db.columns.Where(w=>w.category.Equals("Cars"));foreach(varite

php - 在 mysql 数据库中添加前缀以自动递增

我的数据库中有表test1。它有一个自动递增的主ID“Id”。现在id的格式为1,2,3..。.是否可以将主ID存储为PNR1、PNR2、PNR3…….等等(自动递增)。 最佳答案 没有。在查询中添加前缀,或改用View。 关于php-在mysql数据库中添加前缀以自动递增,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5991148/

mysql - 查找列值变化的位置

如何才能只选择标志值因同一名称而异的名称?nameflagben0harry1harry1harry1john1john0john1krishna1krishna1luke0steve1steve0结果应该选择john和steve 最佳答案 您可以使用以下命令按name对数据进行分组并计算不同的标志值。如果count大于1,则它们有不同的标志:selectnamefromyourtablegroupbynamehavingcount(distinctflag)>1参见SQLFiddlewithDemo如果您想对此进行扩展并在表格中包

php - 基于另一个列值设置新列值的 MySQL 脚本

我有一个现有的数据库和一个现有的表,在那个表中我有一个名为“packageno”的列,它代表包号。我有400多行数据库内容。每个唯一行都有一个包裹编号。但是现在,我添加了一个名为“packagedescription”的列,它代表包描述。现在新列是空的。但是我有一个PHP代码中包描述的图例,例如:if($packageno==1){$description='InteriorRooms';}if(packageno==2){$description='ExteriorRooms';}等等......但是从一开始,我就没有添加描述。相反,我添加了包裹编号。所以,我想做的是更新或设置pac